package pers.qianyu.month_202103.date_20210323;

import pers.qianyu.util.model.ListNode;

import java.util.ArrayList;
import java.util.PriorityQueue;

/**
 * @author mizzle rain
 * @date 2021年3月23日 16点45分
 */
public class MergeKLists {
    public ListNode mergeKLists(ArrayList<ListNode> lists) {
        if (lists == null || lists.size() == 0) return null;
        PriorityQueue<ListNode> q = new PriorityQueue<>((a, b) -> a.val - b.val);
        for (ListNode list : lists) {
            if (list != null && lists.size() > 0) q.offer(list);
        }
        ListNode root = new ListNode(-1), t = root;
        while (!q.isEmpty()) {
            ListNode p = q.poll();
            t.next = p;
            if (p.next != null) q.offer(p.next);
            t = t.next;
        }
        return root.next;
    }
}